Everything about Software Program totally explained
Computer programs (also
software programs, or just
programs) are
instructions for a
computer. A computer requires programs to function, and a computer program does nothing unless its instructions are executed by a
central processor. Computer programs are either
executable programs or the
source code from which executable programs may be created via
compilation.
Computer source code is often written by
professional
computer programmers. Source code is written in a
programming language that follows one of two common
paradigms:
imperative or
declarative programming. Source code may be converted into an
executable file by a
compiler. Once an executable image is requested to be run, the
central processor executes the program, instruction by instruction, until termination. Alternatively, computer programs may be executed immediately with the aid of an
interpreter,
generated by other computer programs, or may be
embedded directly into
hardware.
Computer programs may be categorized along functional lines:
system software and
application software. And many computer programs may run simultaneously on a single computer, a process known as
multitasking.
Programming
Computer programming is the iterative process of writing or editing
source code. Editing source code involves testing, analyzing, and refining. A person who practices this skill is referred to as a computer
programmer or software developer. The sometimes lengthy process of computer programming is usually referred to as
software development. The term
software engineering is becoming popular as the process is seen as an
engineering discipline.
Paradigms
Computer programs can be categorized by the
programming language paradigm used to produce them. Two of the main paradigms are
imperative and
declarative.
Programs written using an imperative language specify an
algorithm using declarations, expressions, and statements. A declaration associates a
variable name with a
datatype. For example:
var x: integer; . An expression yields a value. For example:
2 + 2 yields 4. Finally, a statement might assign an expression to a variable or use the value of a variable to alter the program's control flow. For example:
x := 2 + 2; if x = 4 then do_something; One criticism of imperative languages is the side-effect of an assignment statement on a class of variables called non-local variables.
Programs written using a declarative language specify the properties that have to be met by the output and don't specify any implementation details. Two broad categories of declarative languages are
functional languages and
logical languages. The principle behind functional languages (like
Haskell) is to not allow side-effects, which makes it easier to reason about programs like mathematical functions. The principle behind logical languages (like
Prolog) is to define the problem to be solved — the goal — and leave the detailed solution to the Prolog system itself. The goal is defined by providing a list of subgoals. Then each subgoal is defined by further providing a list of its subgoals, etc. If a path of subgoals fails to find a solution, then that subgoal is
backtracked and another path is systematically attempted.
The form in which a program is created may be textual or visual. In a
visual language program, elements are graphically manipulated rather than textually specified.
Compilation or interpretation
A
computer program in the form of a human-readable, computer programming language is called
source code. Source code may be converted into an
executable image by a
compiler or executed immediately with the aid of an
interpreter.
Compiled computer programs are commonly referred to as executables, binary images, or simply as
binaries — a reference to the
binary file format used to store the executable code. Compilers are used to translate source code from a programming language into either
object code or
machine code. Object code needs further processing to become machine code, and machine code is the
Central Processing Unit's native
code, ready for execution.
Interpreted computer programs are either decoded and then immediately executed or are decoded into some efficient intermediate representation for future execution.
BASIC,
Perl, and
Python are examples of immediately executed computer programs. Alternatively,
Java computer programs are compiled ahead of time and stored as a machine independent code called
bytecode. Bytecode is then executed upon request by an interpreter called a
virtual machine.
The main disadvantage of interpreters is computer programs run slower than if compiled. Interpreting code is slower than running the compiled version because the interpreter must
decode each
statement each time it's loaded and then perform the desired action. On the other hand, software development may be quicker using an interpreter because testing is immediate when the compilation step is omitted. Another disadvantage of interpreters is the interpreter must be present on the computer at the time the computer program is executed. Alternatively, compiled computer programs need not have the compiler present at the time of execution.
No properties of a programming language require it to be exclusively compiled or exclusively interpreted. The categorization usually reflects the most popular method of language execution. For example, BASIC is thought of as an interpreted language and C a compiled language, despite the existence of BASIC compilers and C interpreters.
Self-modifying programs
A computer program in
execution is normally treated as being different from the
data the program operates on. However, in some cases this distinction is blurred when a computer program modifies itself. The modified computer program is subsequently executed as part of the same program.
Self-modifying code is possible for programs written in
Lisp,
COBOL, and
Prolog.
Execution and storage
Typically, computer programs are stored in
non-volatile memory until requested either directly or indirectly to be
executed by the computer user. Upon such a request, the program is loaded into
random access memory, by a computer program called an
operating system, where it can be accessed directly by the central processor. The central processor then executes ("runs") the program, instruction by instruction, until termination. A program in execution is called a
process. Termination is either by normal self-termination or by error — software or hardware error.
Embedded programs
Some computer programs are embedded into hardware. A
stored-program computer requires an initial computer program stored in its
read-only memory to
boot. The boot process is to identify and initialize all aspects of the system, from
CPU registers to
device controllers to
memory contents. Following the initialization process, this initial computer program loads the
operating system and sets the
program counter to begin normal operations. Independent of the host computer, a
hardware device might have embedded
firmware to control its operation. Firmware is used when the computer program is rarely or never expected to change, or when the program must not be lost when the power is off.
Manual programming
Computer programs historically were manually input to the central processor via switches. An instruction was represented by a configuration of on/off settings. After setting the configuration, an execute button was pressed. This process was then repeated. Computer programs also historically were manually input via
paper tape or
punched cards. After the medium was loaded, the starting address was set via switches and the execute button pressed.
Automatic program generation
Generative programming is a style of
computer programming that creates
source code through
generic classes,
prototypes,
templates,
aspects, and
code generators to improve
programmer productivity. Source code is generated with
programming tools such as a
template processor or an
Integrated Development Environment. The simplest form of source code generator is a
macro processor, such as the
C preprocessor, which replaces patterns in source code according to relatively simple rules.
Software engines output source code or
markup code that simultaneously become the input to another
computer process. The analogy is that of one process driving another process, with the computer code being burned as fuel.
Application servers are software engines that deliver applications to
client computers. For example, a
Wiki is an application server that allows users to build
dynamic content assembled from
articles. Wikis generate
HTML,
CSS,
Java, and
Javascript which are then
interpreted by a
web browser.
Simultaneous execution
Many operating systems support
multitasking which enables many computer programs to appear to be running simultaneously on a single computer. Operating systems may run multiple programs through
process scheduling — a software mechanism to
switch the CPU among processes frequently so that users can
interact with each program while it's running. Within hardware, modern day multiprocessor computers or computers with multicore processors may run multiple programs.
Functional categories
Computer programs may be categorized along functional lines. These functional categories are
system software and
application software. System software includes the
operating system which couples the
computer's hardware with the application software. The purpose of the operating system is to provide an environment in which application software executes in a convenient and efficient manner. In addition to the operating system, system software includes
utility programs that help manage and tune the computer. If a computer program isn't system software then it's application software. Application software includes
middleware, which couples the system software with the
user interface. Application software also includes utility programs that help users solve application problems, like the need for sorting.
Further Information
Get more info on 'Software Program'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://computer_program.totallyexplained.com">Computer program Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |